/**
 * 将components文件下的组件遍历挂载全局
*/
import upperFirst from 'lodash/upperFirst';
import camelCase from 'lodash/camelCase';

// 获取 components 文件夹中的所有组件文件
const componentFiles = import.meta.glob('./components/*.vue');

export default function registerGlobalComponents(app) {
  // 遍历所有组件文件
  for (const path in componentFiles) {
    // 获取组件配置
    const componentConfig = componentFiles[path];

    // 获取组件的 PascalCase 名称
    const componentName = upperFirst(
      camelCase(path.replace(/^\.\/components\/(.*)\.\w+$/, '$1'))
    );

    // 全局注册组件
    app.component(componentName, componentConfig.default || componentConfig);
  }
}